/*
    题目信息：自定义数组扩容规则，当已存储元素数量达到总容量的 80%时，扩容 1.5 倍
 */

import java.util.Scanner;

public class CustomDilatancy {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // 1. 提示用户输入数组的初始长度
        System.out.println("请输入初始数组长度：");
        int origin_len = sc.nextInt();
        int[] origin_arr = new int[origin_len];

        // 2. 提示用户输入数组已存储元素的数量
        System.out.println("请输入已存储元素的数量：");
        int stored_len = sc.nextInt();

        // 3. 判断已存储数量是否达到总容量的80%, 若是则扩容
        if(stored_len * 1.0 / origin_len >= 0.08) {
            // 4. 声明新的临时数组，长度为初始数组长度的1.5倍
            int[] temp_arr = new int[(int)(origin_len * 1.5)];
            // 5. 复制初始数组中的元素到临时数组
            System.arraycopy(origin_arr, 0, temp_arr, 0, stored_len);
            // 6. 赋值临时数组的内存地址给初始数组
            origin_arr = temp_arr;
        }
        System.out.println("初始数组的原数组长度为:" + origin_len);
        System.out.println("初始数组的元素个数为:" + stored_len);
        System.out.println("初始数组的扩容后长度为:" + origin_arr.length);

    }
}
